/*
 * 文件名：bsp_esp32.cpp
 * 功能描述：打印ESP32微控制器的一些关键信息，包括内存使用情况、芯片信息、SDK版本等。
 */
#include "bsp_esp32.h"
#include <Arduino.h>
#include "Esp.h"
#include "config.h"

void print_kernel_info(void)
{
    if (print_key)
    {
        Serial.printf("\n\n");
        // 打印自由堆的大小
        Serial.printf("getHeapSize: %d\n", ESP.getHeapSize());
        Serial.printf("getFreeHeap: %d\n", ESP.getFreeHeap());
        Serial.printf("getMinFreeHeap: %d\n", ESP.getMinFreeHeap());
        Serial.printf("getMaxAllocHeap: %d\n", ESP.getMaxAllocHeap());
        Serial.printf("getFreePsram: %d\n", ESP.getFreePsram());
        Serial.printf("getMinFreePsram: %d\n", ESP.getMinFreePsram());
        Serial.printf("getMaxAllocPsram: %d\n", ESP.getMaxAllocPsram());
        Serial.printf("getSketchSize: %d\n", ESP.getSketchSize());
        Serial.printf("getFreeSketchSpace: %d\n", ESP.getFreeSketchSpace());

        Serial.printf("getSketchMD5: %s\n", ESP.getSketchMD5().c_str()); ////32位

        Serial.printf("getChipRevision: %d\n", ESP.getChipRevision());
        Serial.printf("getChipCores: %d\n", ESP.getChipCores());
        Serial.printf("getSdkVersion: %s\n", ESP.getSdkVersion());

        Serial.printf("getFlashChipSize: %d\n", ESP.getFlashChipSize());
        Serial.printf("getFlashChipSpeed: %d\n", ESP.getFlashChipSpeed());
        Serial.printf("getFlashChipMode: %d\n", ESP.getFlashChipMode()); ////FM_DIO 02
        Serial.printf("getChipModel: %s\n", ESP.getChipModel());
    }

    // 打印具有8位功能的所有内存的列表
    //    heap_caps_print_heap_info(MALLOC_CAP_8BIT);
}